﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using QuanLyDoiXe.lop_doi_tuong;
using QuanLyDoiXe.Lop_du_lieu;
using System.IO;
using BarcodeLib;

namespace QuanLyDoiXe
{
    public partial class frmcapnhienlieu : Form
    {
        SqlConnection conn = new SqlConnection("Data Source=ACER;Initial Catalog=quanlydoixevinamilk;Integrated Security=True");
        public frmcapnhienlieu()
        {
            InitializeComponent();
        }
        #region 1. Thoat & nhap lai
        private void btnthoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void btnnhaplai_Click(object sender, EventArgs e)
        {
            txtchisocu.Text = "";
            txtdinhmuc.Text = "";
            txtdungtich.Text = "";
            txtxe.Text = "";
            txtnhanvien.Text = "";
            txtngaycap.Text = "";
            txtsolitcap.Text = "";
        }
        #endregion
        #region 2. Hien thi cap nhien lieu
        ListViewItem item;
        private void HienThiCapNhienLieu()
        {
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand("Select * from capnhienlieuchoxe,xecongty,NVcapnhienlieu,dinhmuc where capnhienlieuchoxe.Mxe=xecongty.Mxe and capnhienlieuchoxe.MNVC=NVcapnhienlieu.MNVC and capnhienlieuchoxe.MDM=dinhmuc.MDM ", conn);
                SqlDataReader sqlDA = cmd.ExecuteReader();
                int i = 0;
                lvcapnhienlieu.View = View.Details;
                lvcapnhienlieu.FullRowSelect = true;
                while (sqlDA.Read())
                {
                    i++;
                    item = new ListViewItem(i.ToString());
                    item.SubItems.Add(sqlDA["Mxe"].ToString());
                    item.SubItems.Add(sqlDA["Dungtichbinh"].ToString());
                    item.SubItems.Add(sqlDA["Chisocu"].ToString());
                    item.SubItems.Add(sqlDA["Dinhmuc"].ToString());
                    item.SubItems.Add(sqlDA["Solitcap"].ToString());
                    item.SubItems.Add(sqlDA["Ngaycap"].ToString());
                    item.SubItems.Add(sqlDA["TenNV"].ToString());
                    lvcapnhienlieu.Items.Add(item);
                }
                cmd.Dispose();
                sqlDA.Close();
                conn.Close();
            }
            catch
            {
            }
        }
        private void lvcapnhienlieu_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            ListViewItem item = e.Item;
            txtxe.Text = item.SubItems[1].Text;
            txtdungtich.Text = item.SubItems[2].Text;
            txtchisocu.Text = item.SubItems[3].Text;
            txtdinhmuc.Text = item.SubItems[4].Text;
            txtsolitcap.Text = item.SubItems[5].Text;
            txtngaycap.Text = item.SubItems[6].Text;
            txtnhanvien.Text = item.SubItems[7].Text;
        }
        string Mxe,TenNV;
        int Dungtichbinh, Chisocu, Solitcap,Dinhmuc;
        DateTime Ngaycap;
        private void lvcapnhienlieu_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < lvcapnhienlieu.Items.Count; i++)
            {
                if (lvcapnhienlieu.Items[i].Selected)
                {
                    Mxe = item.SubItems[1].Text;
                    Dungtichbinh =Convert.ToInt32(item.SubItems[2].Text);
                    Chisocu =Convert.ToInt32(item.SubItems[3].Text);
                    Dinhmuc =Convert.ToInt32(item.SubItems[4].Text);
                    Solitcap = Convert.ToInt32(item.SubItems[5].Text);
                    Ngaycap =Convert.ToDateTime(item.SubItems[6].Text);
                    TenNV = item.SubItems[7].Text;
                }
            }
        }
        private void frmcapnhienlieu_Load(object sender, EventArgs e)
        {
            HienThiCapNhienLieu();
        }
        #endregion
        #region 3. xoá
        private void btnxoa_Click(object sender, EventArgs e)
        {
            lvcapnhienlieu.Items.Remove(lvcapnhienlieu.FocusedItem);
            Lop_lay_du_lieu dl = new Lop_lay_du_lieu();
            SqlDataReader dr = dl.lay_reader("select Ngaycap from capnhienlieuchoxe where Mxe='" + txtxe.Text + "'");
            while (dr.Read())
            {
                Ngaycap = Convert.ToDateTime(dr["Ngaycap"].ToString());
            }
            lop_ket_noi.huyketnoi();

            string strDinhmuc = "";
            Lop_lay_du_lieu dl1 = new Lop_lay_du_lieu();
            SqlDataReader dr1 = dl1.lay_reader("select MDM from dinhmuc where Dinhmuc='" + txtdinhmuc.Text + "'");
            while (dr1.Read())
            {
               strDinhmuc = dr1.GetString(0);
            }
            dr1.Close(); dr1.Dispose();

            string strMaNV = "";
            Lop_lay_du_lieu dl2 = new Lop_lay_du_lieu();
            SqlDataReader dr2 = dl2.lay_reader("select MNVC from NVcapnhienlieu where TenNV=N\'" + txtnhanvien.Text + "\'");
            while (dr2.Read())
            {
                strMaNV = dr2.GetString(0);
            }
            dr2.Close(); dr2.Dispose();

           string strMaxe = "";
            Lop_lay_du_lieu dl3 = new Lop_lay_du_lieu();
            SqlDataReader dr3 = dl3.lay_reader("select Mxe from xecongty where Mxe='" + txtxe.Text + "'");
            while (dr3.Read())
            {
                strMaxe = dr3.GetString(0);
            }
            dr3.Close(); dr3.Dispose();
            
            lop_capnhienlieu nhienlieu = new lop_capnhienlieu(strMaxe, Dungtichbinh, Chisocu, strDinhmuc, Solitcap, Ngaycap, strMaNV);
            if (nhienlieu.xoa())
            {
                MessageBox.Show("Quá trình xóa cấp nhiên liệu ra khỏi danh sách thành công !");
                txtxe.Text = "";
                txtdungtich.Text = "";
                txtchisocu.Text = "";
                txtdinhmuc.Text = "";
                txtsolitcap.Text = "";
                txtngaycap.Text = "";
                txtnhanvien.Text = "";
            }

            else
                MessageBox.Show("Quá trinh xóa cấp nhiên liệu ra khỏi danh thất bại !");
            lvcapnhienlieu.Items.Clear();
            HienThiCapNhienLieu();
        }
        #endregion
        #region 4. cập nhập
        private void btncapnhap_Click(object sender, EventArgs e)
        {
            string strMaNV = "";
            Lop_lay_du_lieu dl = new Lop_lay_du_lieu();
            SqlDataReader dr = dl.lay_reader("select MNVC from NVcapnhienlieu where TenNV=N\'" + txtnhanvien.Text + "\'");
            while (dr.Read())
            {
                strMaNV = dr.GetString(0);
            }
            dr.Close(); dr.Dispose();

            string strdinhmuc = "";
            Lop_lay_du_lieu dl1 = new Lop_lay_du_lieu();
            SqlDataReader dr1 = dl1.lay_reader("select MDM from dinhmuc where Dinhmuc=\'" + txtdinhmuc.Text + "\'");
            while (dr1.Read())
            {
                strdinhmuc = dr1.GetString(0);
            }
            dr1.Close(); dr1.Dispose();
            string strMaxe = "";
            Lop_lay_du_lieu dl2 = new Lop_lay_du_lieu();
            SqlDataReader dr2 = dl2.lay_reader("select Mxe from xecongty where Mxe=N\'" + txtxe.Text + "\'");
            while (dr2.Read())
            {
                strMaxe = dr2.GetString(0);
            }
            dr2.Close(); dr2.Dispose();
            lop_ket_noi.huyketnoi();
            if (txtxe.Text != "" && txtdungtich.Text != "" && txtdinhmuc.Text != "" && txtchisocu.Text != "" && txtnhanvien.Text != "" && txtsolitcap.Text != "" && txtngaycap.Text != "")
            {
                lop_capnhienlieu nhienlieu = new lop_capnhienlieu(strMaxe,Convert.ToInt32(txtdungtich.Text),Convert.ToInt32(txtchisocu.Text),strdinhmuc,Convert.ToInt32(txtsolitcap.Text),Convert.ToDateTime(txtngaycap.Text),strMaNV);
                if (nhienlieu.capnhat())
                    MessageBox.Show("Quá trình cập nhật cấp nhiên liệu thành công!");
                else
                    MessageBox.Show("Quá trình cập nhật cấp nhiên liệu thất bại!");
            }
            else
                MessageBox.Show("Bạn hãy nhập đầy đủ thông tin cấp nhiên liệu! ");
            lvcapnhienlieu.Items.Clear();
            HienThiCapNhienLieu();
        }
        #endregion
    }
}
